package cn.iocoder.yudao.module.dr.controller.admin.collectionmanagement.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 藏品 Excel 导入 VO
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false，避免用户导入有问题
@ExcelIgnoreUnannotated // 忽略未标注 @ExcelProperty 的字段
public class CollectionImageExportExcelVO {

    @Schema(description = "总登记号不能为空")
    @ExcelProperty({"藏品关键信息","藏品总登记号"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 24) // 蓝色
    private String generalAccessionNumber;

    @ExcelProperty({"藏品关键信息","名称（部分有修改过名称，注意核对）"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 24) // 蓝色
    private String collectionName;

    @ExcelProperty({"藏品关键信息","件数"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 24) // 蓝色
    private String collectionNum;

    @ExcelProperty({"加工成果数据信息","影像文件名"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 蓝色
    private String imageFilename;

    @ExcelProperty({"加工成果数据信息","文件格式"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private String fileFormat;

    @Schema(description = "加工日期")
    @ExcelProperty({"加工成果数据信息","加工日期"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private LocalDateTime processingDate;

    @Schema(description = "加工单位")
    @ExcelProperty({"加工成果数据信息","加工单位"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private String processingUnit;

    @Schema(description = "加工人")
    @ExcelProperty({"加工成果数据信息","加工人"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private String processor;

    @Schema(description = "成果影像质量检查人")
    @ExcelProperty({"加工成果数据信息","成果影像质量检查人"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private String qualityInspector;

    @Schema(description = "文件大小(M)")
    @ExcelProperty({"加工成果数据信息","文件大小(M)"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private BigDecimal fileSize;

    @Schema(description = "分辨率")
    @ExcelProperty({"加工成果数据信息","分辨率"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 57) // 绿色
    private String resolution;

    @Schema(description = "拍摄单位")
    @ExcelProperty({"采集数据信息","拍摄单位"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String shootingUnit;

    @Schema(description = "拍摄地")
    @ExcelProperty({"采集数据信息","拍摄地"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String shootingLocation;

    @Schema(description = "拍摄日期")
    @ExcelProperty({"采集数据信息","拍摄日期"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private LocalDateTime shootingDate;

    @Schema(description = "拍摄人")
    @ExcelProperty({"采集数据信息","拍摄人"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String photographer;

    @Schema(description = "拍摄设备品牌型号")
    @ExcelProperty({"采集数据信息","拍摄设备品牌型号"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String equipmentModel;

    @Schema(description = "拍摄设备品牌型号")
    @ExcelProperty({"采集数据信息","文件格式"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String fileType;

    @Schema(description = "采集内容")
    @ExcelProperty({"采集数据信息","采集内容"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String acquisitionContent;

    @Schema(description = "采集影像总数(张)")
    @ExcelProperty({"采集数据信息","采集影像总数(张)"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private Integer totalImages;

    @Schema(description = "采集影像质量检查人")
    @ExcelProperty({"采集数据信息","采集影像质量检查人"})
    @HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47) // 棕褐色
    private String acquisitionInspector;

}
